package vista;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.awt.*;
import java.util.*;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

import org.omg.CORBA.portable.ValueOutputStream;

import modelo.Drogueria;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class VentanaPedido extends javax.swing.JFrame {
	private static VentanaPedido inst;
	private JPanel panPedido;
	private JTextField txtNumero;
	private JTextField txtFechaFactura;
	private JLabel lblNumeroPedido;
	private JLabel lblFechaFactura;
	private JButton btnSalir;
	private JTextField txtCedCliente;
	private JTextField txtCantidad;
	private JLabel lblCantidad;
	private JTextField txtNomCliente;
	private JButton btnFacturar;
	private JButton btnAgregar;
	private JLabel lblProducto;
	private JButton btnDespachar;
	private JTextField txtEstado;
	private JLabel lblEstado;
	private JButton btnBuscar;
	private JButton btnQuitar;
	private JComboBox cmbProductos;
	private JButton btnCancelar;
	private JLabel lblCedCliente;
	private JLabel lblNomCliente;
	private JTable tblPedido;
	private JScrollBar jScrollPane1;
	private JScrollPane jsPedido;
	

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}


	/**
	* Auto-generated main method to display this JFrame
	*/

	public VentanaPedido() {
		super();
		initGUI();
	}
	
	public void agregarListener(ActionListener accion){
		btnAgregar.addActionListener(accion);
		btnCancelar.addActionListener(accion);
		btnFacturar.addActionListener(accion);
		btnQuitar.addActionListener(accion);
		btnSalir.addActionListener(accion);
		btnBuscar.addActionListener(accion);
		btnDespachar.addActionListener(accion);
		//cmbProductos.addActionListener(accion);
		//cmbProductos.setToolTipText("Seleccione una Opción");
	}
	
	public void setCedula(String ced){
		txtCedCliente.setText(ced);
	}
	
	public void setNombre(String nomb){
		txtNomCliente.setText(nomb);
	}
	
	public void setFecha(String fech){
		txtFechaFactura.setText(fech);
	}
	public void setNumero(String num){
		txtNumero.setText(num);
	}
	
	//PARA CARGAR COMBO DE LOS PRODUCTOS
	public void setProducto(ArrayList<String> produc){
		cmbProductos.addItem("Seleccione una Opción");
		for (int i = 0; i < produc.size(); i++){
			cmbProductos.addItem(produc.get(i));
		}

	}
	
	public String getCedula(){
		return txtCedCliente.getText();
		}
		
	public void setCantidad(int cant){
		txtCantidad.setText(String.valueOf(cant));
	}
	
	public String getNombre(){
		return txtNomCliente.getText();
	}
	
	public String getFecha(){
		return txtFechaFactura.getText();
	}
	
	public String getNumero(){
		return txtNumero.getText();
	}
	
	public String getProducto(){
		return cmbProductos.getSelectedItem().toString();
	}
	
	public int getCantidad(){
		return Integer.parseInt(this.txtCantidad.getText());
	}
	
	public void setEstado(String est){
		txtEstado.setText(est);
	}
	
	public String getEstado(){
		return txtEstado.getText();
	}
	
	public void setTablaPedido(String tbl){
		tblPedido.setTableHeader(null);
	}
	
	public String getTablaProducto(){
		return String.valueOf(tblPedido);
	}
	
	public void limpiarCampos(){
		txtCedCliente.setText("");
		txtFechaFactura.setText("");
		txtNomCliente.setText("");
		//txtNumero.setText("");
		cmbProductos.setToolTipText("Seleccione una Opción");
		cmbProductos.setSelectedIndex(0);
		txtCantidad.setText("");
	}	
		
	public void mostrarMensaje(String mensaje) {
		JOptionPane.showMessageDialog(this, mensaje);
	}
	
	public void inhabilitarNumero(){
		txtNumero.enable(false);	
	}

	public void inhabilitarFecha(){
		txtFechaFactura.enable(false);	
	}
	public void inhabilitarFacturar(){
		btnFacturar.enable(false);
	}
	
	public Boolean validarPedido(){
		if (txtCantidad.getText().isEmpty()== true){
			mostrarMensaje("Ingrese cantidad");		
			return false;
			}
		else if(cmbProductos.getSelectedItem().toString().isEmpty()== true){
			mostrarMensaje("Selecciones un producto");
			return false;
			}
		else
			return true;
	}
	
	
	public void limpiarCant(){
		txtCantidad.setText("");
	}
	
	public void setFocus(){
		txtCedCliente.transferFocus();
	}
	
	public Boolean validar(){
		
			if(txtCedCliente.getText().isEmpty()== true){
				mostrarMensaje("Ingrese Cédula del Cliente");
				return false;
			}else if(txtNomCliente.getText().isEmpty()== true){
				mostrarMensaje("Ingrese Nombre del Cliente");
				return false;
			}	
			else
				return true;
	}
	
	public void setProductosComboBox(ArrayList<String> nombre){
		cmbProductos.removeAllItems();
		cmbProductos.addItem("Seleccione una opcion");
		for(int i = 0; i < nombre.size();i++)
			cmbProductos.addItem(nombre.get(i));
		}
	
	/*public int cantItems(){
		return tblPedido.getSize();
	}*/
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Pedido");
			{
				panPedido = new JPanel();
				getContentPane().add(panPedido, "Center");
				panPedido.setBounds(2, -2, 728, 522);
				panPedido.setLayout(null);
				{
					lblFechaFactura = new JLabel();
					panPedido.add(lblFechaFactura);
					lblFechaFactura.setText("Fecha:");
					lblFechaFactura.setBounds(502, 17, 46, 17);
				}
				{
					lblNumeroPedido = new JLabel();
					panPedido.add(lblNumeroPedido);
					lblNumeroPedido.setText("N° Pedido:");
					lblNumeroPedido.setBounds(502, 57, 83, 17);
				}
				{
					txtFechaFactura = new JTextField();
					panPedido.add(txtFechaFactura);
					txtFechaFactura.setBounds(591, 12, 108, 27);
					txtFechaFactura.setEnabled(false);
				}
				{
					txtNumero = new JTextField();
					panPedido.add(txtNumero);
					txtNumero.setBounds(591, 52, 108, 27);
					txtNumero.setEnabled(false);
				}
				{
					lblNomCliente = new JLabel();
					panPedido.add(lblNomCliente);
					lblNomCliente.setText("Nombre:");
					lblNomCliente.setBounds(33, 63, 61, 17);
				}
				{
					lblCedCliente = new JLabel();
					panPedido.add(lblCedCliente);
					lblCedCliente.setText("Cédula:");
					lblCedCliente.setBounds(33, 30, 53, 17);
				}
				{
					txtNomCliente = new JTextField();
					panPedido.add(txtNomCliente);
					txtNomCliente.setBounds(106, 58, 228, 27);
				}
				{
					txtCedCliente = new JTextField();
					panPedido.add(txtCedCliente);
					txtCedCliente.setBounds(106, 25, 115, 27);
				}
				{
					ComboBoxModel cmbProductosModel = 
							new DefaultComboBoxModel(
									new String[] { });
					cmbProductos = new JComboBox();
					panPedido.add(cmbProductos);
					cmbProductos.setModel(cmbProductosModel);
					cmbProductos.setBounds(114, 128, 488, 27);
				}
				{
					btnAgregar = new JButton();
					panPedido.add(btnAgregar);
					btnAgregar.setText("Agregar");
					btnAgregar.setBounds(623, 127, 73, 29);
				}
				{
					lblProducto = new JLabel();
					panPedido.add(lblProducto);
					lblProducto.setText("Producto:");
					lblProducto.setBounds(33, 133, 69, 17);
				}
				{
					btnCancelar = new JButton();
					panPedido.add(btnCancelar);
					btnCancelar.setText("Cancelar");
					btnCancelar.setBounds(502, 467, 87, 29);
				}
				{
					btnFacturar = new JButton();
					panPedido.add(btnFacturar);
					btnFacturar.setText("Facturar");
					btnFacturar.setBounds(270, 467, 87, 29);
				}
				{
					btnSalir = new JButton();
					panPedido.add(btnSalir);
					btnSalir.setText("Salir");
					btnSalir.setBounds(609, 467, 87, 29);
				}
				{
					btnQuitar = new JButton();
					panPedido.add(btnQuitar);
					btnQuitar.setText("Quitar");
					btnQuitar.setBounds(624, 168, 72, 29);
				}
				{
					lblCantidad = new JLabel();
					panPedido.add(lblCantidad);
					lblCantidad.setText("Cantidad:");
					lblCantidad.setBounds(33, 180, 66, 17);
				}
				{
					txtCantidad = new JTextField();
					panPedido.add(txtCantidad);
					txtCantidad.setBounds(114, 175, 64, 27);
				}
				{
					btnBuscar = new JButton();
					panPedido.add(btnBuscar);
					panPedido.add(getLblEstado());
					panPedido.add(getTxtEstado());
					panPedido.add(getBtnDespachar());
					panPedido.add(getJsPedido());

					btnBuscar.setText("Buscar");
					btnBuscar.setBounds(233, 24, 60, 29);
				}
			}
			pack();
			this.setSize(738, 550);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

	public void AgregarCodigoCombo(ArrayList<String> token) {
		cmbProductos.removeAll();
		cmbProductos.addItem("Seleccionar Item");
		for( int i=0; i< token.size();i++){
			//private JScrollPane jsPedido;
			cmbProductos.addItem(token);
		}
	}

	public void setListado(AbstractTableModel abstractTableModel){
		tblPedido.setModel(abstractTableModel);
	}
	
	
	
	private JLabel getLblEstado() {
		if(lblEstado == null) {
			lblEstado = new JLabel();
			lblEstado.setText("Estado:");
			lblEstado.setBounds(33, 409, 52, 17);
		}
		return lblEstado;
	}
	
	private JTextField getTxtEstado() {
		if(txtEstado == null) {
			txtEstado = new JTextField();
			txtEstado.setBounds(97, 404, 158, 27);
			txtEstado.setEnabled(false);
		}
		return txtEstado;
	}
	
	private JButton getBtnDespachar() {
		if(btnDespachar == null) {
			btnDespachar = new JButton();
			btnDespachar.setText("Despachar");
			btnDespachar.setBounds(390, 467, 87, 29);
		}
		return btnDespachar;
	}
	
	private JScrollPane getJsPedido() {
		if(jsPedido == null) {
			jsPedido = new JScrollPane();
			jsPedido.setBounds(68, 227, 592, 147);
			jsPedido.setViewportView(getTblPedido());
		}
		return jsPedido;
	}
	
	private JTable getTblPedido() {
		if(tblPedido == null) {
			TableModel tblPedidoModel = 
					new DefaultTableModel(
							new String[][] { { "", "", "", "", "", "" }, { "", "", "", "", "", "" } },
							new String[] { "", "", "", "", "", "" });
			tblPedido = new JTable();
			tblPedido.setModel(tblPedidoModel);
		}
		return tblPedido;
	}
}